package com.auth.manage.lock;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DistributeLock {
    //  key 和keyExpression二选一，只能有一个，key 表示规定值当作锁的 key，keyExpression表示是一个SPEL表达式
    String scene();

    String key() default DistributeLockConstant.DEFAULT_KEY;

    int waitTime() default DistributeLockConstant.DEFAULT_WAIT_TIME;

    int releaseTime() default DistributeLockConstant.DEFAULT_WAIT_RELEASE_TIME;

    String keyExpression() default DistributeLockConstant.DEFAULT_KEY;

}
